import React, { Component } from 'react'

/**
 * Class constructor  cannot be invoked without 'new'
 * 使用装饰器后想要传多参数,必须在Hoc使用函数柯里化
 * 返回的组件必须作为最后一个参数
 * 第一个参数可传各种数据结构
 * 。。。。。。。。。。。。
 * 注意: 不写柯里化写成'@Hoc()',必定会报上述错误
 *       写了柯里化后,写括号不写参数则表示传过来一个undefined; 有参数则传来一个参数
 * 。。。。。。。。。。。。
 * 使用装饰器后 必须在最下面导出组件
 * 。。。。。。。。。。。。
 * 使用装饰器vsCode会报错,设置vsCode可解决: experimentalDecorators设置为true
 * 网址：https://www.jianshu.com/p/4c2bc81b75f0
 * 。。。。。。。。。。。。
 */
const Hoc = (num) => (BackComponent) => {
  return class extends Component {
    render() {
      // console.log(num)
      return (
        <div>
          {/* { */}
            <BackComponent />
            <div>xxxx &copy; 2020</div>
          {/* } */}
        </div>
      )
    }
  }
}

export default Hoc
